#ifndef __FILETYPE__H_
#define __FILETYPE__H_

#include "../../catalog/Catalogues.h"
#include "../../staticutils.h"
#include <vector>
#include <set>
#include <extractor.h>
#include <regex.h>
#include <sstream>
#include <iostream>

class FileParser;

class FileType {
public:

    virtual ~FileType();
    std::string extractFileName(std::string path);
    virtual void parse(std::string path, Catalogues* catalog, EXTRACTOR_KeywordList* list) = 0;
protected:

    void extractList(EXTRACTOR_KeywordList* list, std::set<std::string>& terminos);

    void replace(std::string& string);

    void matchStopWords(std::vector<std::string>& value);

    std::set<int> extractorType;

    std::vector<std::string> replaceWords;

    regex_t regex;
};


#include "../FileParser.h"

#endif // FileType_h
